<?php
require_once('myheader.php');
require_once('myfooter.php');
require_once('helper/connexion.php');
require_once('helper/enseignant_helper.php');
require_once('helper/divers_helper.php');

function request_error() {
		return '<div class="alert alert-error span8">			
					<h4>Erreur !</h4>
					Impossible d\'accéder à votre requête.
				</div>';
}

function form_error($msg) {
		return '<div class="alert alert-error">		
					<button type="button" class="close" data-dismiss="alert">&times;</button>
					<h4>Erreur !</h4>
					'.$msg.'
				</div>';
}

myHeader("enseignants");

echo '<div class="container">

<div id="body_gestion">';

$action = '';
$error = false;
$form_error = false;
$form_message = '';

// Si on n'a pas d'action en GET on renvoie une erreur générique
if(!isset($_GET['action']) || empty($_GET['action'])) {
	echo request_error();
	$error = true;
} else {
  $action = $_GET['action']; 

  // Si on ne connait pas l'action on renvoie une erreur générique
  if ($action != 'edit' && $action != 'add') {
	  echo request_error();
	  $error = true;
  } else {	
	connexion_sql();
	
	// Dans le cas d'une modification
	if($action == 'edit') {
		// edit + POST qui existe = modification à faire dans la BDD
		if(isset($_POST) && !empty($_POST)) {
			$isset = isset($_POST['inputRegime']);
				
			$nom = pg_escape_string($_POST['inputName']);
			$prenom = pg_escape_string($_POST['inputFirstName']);
			$mail = pg_escape_string($_POST['inputEmail']);
			$motdepasse = pg_escape_string($_POST['inputPassword']);
			$salariepublic = ($_POST['inputRegime'] == 'public' ? 'TRUE' : 'FALSE');
			$etablissement = (int) $_POST['inputEtablissement'];
			$statut = (int) $_POST['inputStatut'];
			$statutReel = pg_escape_string($_POST['inputStatutReel']);			
			$autresHeures = (float) $_POST['inputAutre'];
			$reliquat = (float) $_POST['inputReliquat'];
			
			$length = strlen($nom) > 1 && strlen($prenom) > 1 && strlen($mail) > 1
					  && (strlen($statutReel) >=0 && strlen($statutReel) <= 45); 
			$numbers = $autresHeures >= 0 && $reliquat >= 0;
			
			if($isset && $length && $numbers) {
				if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$mail))) {
					$data = getEnseignantById($_SESSION['id_enseignant_edit']);  
					
					if($motdepasse == '')
						$motdepasse = $data['motdepasse'];
					
					updateEnseignant($_SESSION['id_enseignant_edit'],$nom, $prenom, $mail, $reliquat, 
								     $salariepublic, $statutReel,$autresHeures, $etablissement, $statut, $motdepasse);					
														 
					unset($_SESSION['id_enseignant_edit']);
					
					header('Location: enseignant.php');
				} else {
					$form_error = true;
					$form_message = "La syntaxe de l'email est incorrecte !";
				}
			} else {
				$form_error = true;
				$form_message = "Tous les champs ne sont pas remplis. La taille du statut réel est limitée à 45 caractères.";
			}
		} elseif(!isset($_GET['id'])) {
			echo request_error();
			$error = true;
		} else {
			// On veut modifier un enseignant et on a un id
			$id = (int) $_GET['id'];
			$data = getEnseignantById($id);  
			
			// Si l'enseignant est inconnu
			if(!$data) {
				echo request_error();
				$error = true;
			} else {
				// Enseignant connu donc on cleanup ce qui vient de la bdd
				foreach($data as $key=>$value) {
					$data[$key] = htmlspecialchars($value);
				}
				
				// On sauvegarde l'id de l'enseignant en cours d'edit
				$_SESSION['id_enseignant_edit'] = $id;
			}
		}
	}
	
	// add + POST qui existe = ajout à faire dans la BDD
	if($action == 'add' && isset($_POST) && !empty($_POST)) {		
		$isset = isset($_POST['inputRegime']);
				
		$nom = pg_escape_string($_POST['inputName']);
		$prenom = pg_escape_string($_POST['inputFirstName']);
		$mail = pg_escape_string($_POST['inputEmail']);
		$motdepasse = pg_escape_string($_POST['inputPassword']);
		$salariepublic = ($_POST['inputRegime'] == 'public' ? 'TRUE' : 'FALSE');
		$etablissement = (int) $_POST['inputEtablissement'];
		$statut = (int) $_POST['inputStatut'];
		$statutReel = pg_escape_string($_POST['inputStatutReel']);
		$autresHeures = (float) $_POST['inputAutre'];
		$reliquat = (float) $_POST['inputReliquat'];
		
		$length = strlen($nom) > 1 && strlen($prenom) > 1 && strlen($mail) > 1 && strlen($motdepasse) > 1
				  && (strlen($statutReel) >=0 && strlen($statutReel) <= 45); 
		$numbers = $autresHeures >= 0 && $reliquat >= 0;
		
		if($isset && $length && $numbers) {
			if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$mail))) {
				ajoutEnseignant($nom, $prenom, $mail, $reliquat, $salariepublic, 
								$motdepasse, $statutReel,$autresHeures, $etablissement, $statut);
				header('Location: enseignant.php');
			} else {
				$form_error = true;
				$form_message = "La syntaxe de l'email est incorrecte !";
			}
		} else {
			$form_error = true;
			$form_message = "Tous les champs ne sont pas remplis. La taille du statut réel est limitée à 45 caractères.";
		}
	}
}
  
  if(!$error) {
?>
   <script type="text/javascript" src="js/pwstrength.js"></script>
   <script type="text/javascript">
        jQuery(document).ready(function () {
            "use strict";
            var options = {
                onLoad: function () {
                    $('#messages').text('');
                },
                onKeyUp: function (evt) {
                    $(evt.target).pwstrength("outputErrorList");
                }
            };
            $(':password').pwstrength(options);
        });
    </script>
    
    	<?php
		if($form_error) {
			echo form_error($form_message);
		}
    ?>
    

	<h2><?php echo ($action == 'edit') ? 'Modifier "'.$data['prenom'].' '.strtoupper($data['nom']).'"' : 'Ajouter un enseignant';?></h2>

	<form class="form-horizontal" method="post" <?php echo 'action="gestion_enseignant.php?action='.$action.'"'; ?>>
	  <div class="control-group">
		<label class="control-label" for="inputName">Nom</label>
		<div class="controls">
		  <input type="text" id="inputName" name="inputName"  value="<?php echo ((isset($data['nom'])) ? $data['nom'] : '');  ?>">
		</div>
	  </div>
	  <div class="control-group">
		<label class="control-label" for="inputFirstName">Prénom</label>
		<div class="controls">
		  <input type="text" id="inputFirstName" name="inputFirstName"  value="<?php echo ((isset($data['prenom'])) ? $data['prenom'] : '');  ?>">
		</div>
	  </div>
	  <div class="control-group">
		<label class="control-label" for="inputEmail">E-mail</label>
		<div class="controls">
		  <input type="text" id="inputEmail" name="inputEmail"  value="<?php echo ((isset($data['mail'])) ? $data['mail'] : '');  ?>">
		</div>
	  </div>
	  <div class="control-group">
			<label class="control-label" for="inputPassword">Mot de passe</label>
			<div class="controls">
				<input type="password" id="inputPassword" name="inputPassword">
			</div>
	  </div>	  
	  <div class="control-group">
		<label class="control-label" for="optionPublic">Régime</label>
		<div class="controls">
		 <label class="radio" for="optionPublic">
		   <input type="radio" name="inputRegime" id="optionPublic" value="public" <?php echo (isset($data['salariepublic']) && $data['salariepublic'] == 't') ? 'checked' : ''; ?>> Public
		 </label>
		 <label class="radio" for="optionPrive">
		   <input type="radio" name="inputRegime" id="optionPrive" value="prive" <?php echo (isset($data['salariepublic']) && $data['salariepublic'] == 'f') ? 'checked' : ''; ?>> Privé
		 </label>
		</div>
	  </div>  
	  <div class="control-group">
		<label class="control-label" for="inputEtablissement">Établissement</label>
		<div class="controls">
			 <select name="inputEtablissement" id="inputEtablissement">
		 <?php
				   $req = get_all_etablissement();
				   while($row = pg_fetch_assoc($req)){					 
					if(isset($data['etablissement']) && $data['etablissement'] == $row['id']) {
						 echo '<option name="inputEtablissement" value="'.$row["id"].'" selected>'.$row["etablissement"].'</option>';
					} else {
							 echo '<option name="inputEtablissement" value="'.$row["id"].'">'.$row["etablissement"].'</option>';
					}
				   }
		 ?>

		 </select>
		</div>
	  </div>  
	  <div class="control-group">
		<label class="control-label" for="inputStatut">Statut</label>
		<div class="controls">
			 <select name="inputStatut" id="inputStatut">
		 <?php
				   $req = get_all_statut();
				   while($row = pg_fetch_assoc($req)){
					if(isset($data['statut']) && $data['statut'] == $row['id']) {
						 echo '<option name="inputStatut" value="'.$row["id"].'" selected>'.$row["statut"].'</option>';
				} else {
						 echo '<option name="inputStatut" value="'.$row["id"].'">'.$row["statut"].'</option>';
				}
				   }
		 ?>

		 </select>
		</div>
	  </div>
	  
	  <div class="control-group">
		<label class="control-label" for="inputStatutReel">Statut réel</label>
		<div class="controls">
		  <input type="text" id="inputStatutReel" name="inputStatutReel"  value="<?php echo ((isset($data['statutreel'])) ? $data['statutreel'] : '');  ?>">
		</div>
	  </div>

		<div class="control-group">
		<label class="control-label" for="inputReliquat">Reliquat</label>
		<div class="controls">
		  <input class="input-mini" type="text" id="inputReliquat" name="inputReliquat"  value="<?php echo ((isset($data['reliquat'])) ? $data['reliquat'] : '');  ?>">
		</div>
	  </div>

		<div class="control-group">
		<label class="control-label" for="inputAutre">Autres heures</label>
		<div class="controls">
		  <input class="input-mini" type="text" id="inputAutre" name="inputAutre" value="<?php echo ((isset($data['autresheures'])) ? $data['autresheures'] : '');  ?>">
		</div>
	  </div>

	  <div class="control-group">
		<div class="controls">
			<button type="submit" class="btn"><?php echo ($action == 'add') ? 'Ajouter' : 'Modifier'; ?></button>
		</div>
	  </div>
	</form>
<?php
	}
}

echo '</div>
</div>';

myFooter();
?>
